home *** CD-ROM | disk | FTP | other *** search
- page 132,66,0,6
- ;********************************************
- ;Motorola Austin DSP Operation June 30, 1988
- ;********************************************
- ;DSP56000/1
- ;Dot Product
- ;File name: 7-56.asm
- ;**************************************************************************
- ; Maximum execution time: 585.4 ns at 20.5MHz/ 444.4 ns at 27.0MHz
- ; Memory Size: Prog: 6 words ; Data: 4 words (if z uses the same
- ; address as x1 or x2)
- ; Number of clock cycles: 12 (6 instruction cycles)
- ; Clock Frequency: 20.5 MHz / 27.0 MHz
- ; Cycle time: 97.5ns / 74.1ns
- ;**************************************************************************
- ; This routine performs the scalar product of two
- ; [2x1] vectors on the DSP56000.
- ;
- ; Vector a is in X memory,
- ; vector b is in Y memory,
- ; the result z is stored in X memory.
- ;
- ;**************************************************************************
- ;
- ; X Memory Y Memory
- ;
- ; | | x2 | |->| y2 |
- ; |->| x1 | |->| y1 |
- ; r0 | | r0 | |
- ;
- ; |->| z |
- ;
- ;
- ;Note: the previous assumes that all immediate addressing is
- ;immediate short, i.e. all data is in internal memory.
- ;
- ;**************************************************************************
- ;
- veca equ $010
- z equ $010
-
- org x:veca
- dc $600000
- dc $400000
-
- org y:veca
- dc $300000
- dc $100000
-
- org p:$40
- ;************************************************************
- move #<veca,r0 ;point to vectors a,b
- move #<z,r1 ;point to z
- move l:(r0)+,x ;load first elements.
- mpy x0,x1,a l:(r0)+,x ;a1*b1
- macr x0,x1,a ;+a2*b2
- move a,x:(r0) ;--> z
- ;*************************************************************
- end
- ə